<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //设计一个函数，用于能够生成所有可能的并且正确闭合的括号组合。
        //如n为2，输出的结果应该是："((()))","(()())","(())()","()(())","()()()"。
        function multipleResult (n) {
            let res = [];
            function handleChange(cur,left,right){
                if(cur.length === 2 * n){ //左右括号最大的字符长度，达到这个长度，则需要输出
                    res.push(cur); // 将结果放入数组
                    return;
                }
                if(left < n){ // 如果括号小于最大数，当前字符添加一个左括号，长度加一
                    handleChange(cur + '(', left + 1, right)
                }
                if(left > right) { // 有左括号没右括号
                    handleChange(cur + ')' , left, right + 1)
                }
            }
            handleChange('',0,0); // 第一次执行
            return res;
        }
        console.log( multipleResult(3));// 输出三个括号的排序方法
    </script>
</body>
</html>